

module Multiplier
    #(
        parameter IWID=12,
        parameter OWID=32
    )
    (
        input wire signed [IWID-1:0] i_mul1,
        input wire signed [IWID-1:0] i_mul2,
        input wire i_clk,
        input wire i_rst,
        output reg signed [OWID-1:0] o_product
    );

    wire signed [OWID-1:0] mul_result;

    assign mul_result=i_mul1*i_mul2;

    always@(posedge i_clk or posedge i_rst) begin
        if(i_rst) begin
            o_product<='b0;
        end
        else begin
            o_product<=mul_result;
        end
    end

endmodule

